<?php
/**
 * @author Vitaly
 * Date: 03.05.12
 */

/*
 * Админ-контроллер
 * Обрабатывает все действия в режиме администрирования
 */

class AdminActionController extends ActionController
{
    // выполняется при каждом обращении к контроллеру
    // логинит юзера и добавляет во view его модель (удобно для отрисовки страницы)

    function before()
    {
        if(isSet($_SESSION['userid']))
        {
            $userMapper = new UserMapper();
            $this->view->user = $userMapper->find($_SESSION['userid']);
        }
    }

    // выполняется при обращении к url "/admin"
    // различает кто (простой юзер или админ) залогинен
    // и далее обрабатывает все действия админа

    function action()
    {
        if(!empty($_SESSION['userid']))
        {
            $userMapper = new UserMapper();
            $adminMapper = new AdminMapper();
            $user = $userMapper->find($_SESSION['userid']);

            if($user->getStatus() == 1)
            {
                $this->view->admin = $user; // сделано для просмотра страниц юзеров
                if(!empty($this->args['delete']))
                {
                    $userMapper->delete($this->args['delete']);
                }
                if(!empty($this->args['view']))
                {

                    // устанавливается шаблон "user" (для просмотра именно страницы юзера)
                    // но header остается "admin"
                    // юзером во view устанавливается юзер c id переданным в "?view=xx"

                    $this->view->setStructure('user', 'admin_header')
                               ->setTitle("Admin panel")
                               ->user = $userMapper->find($this->args['view']);
                }
                else
                {
                    $this->view->setStructure('admin', 'admin_header')
                               ->setTitle("Admin panel")
                               ->users = $adminMapper->selectAll();
                }
            }
            else
            {
                $this->view->setStructure('dummy')
                           ->setTitle("You don't have permissions for access!")
                           ->text = "You don't have permissions for access!";
            }
        }
        else
        {
            header('Location: /user/login');
        }
        $this->view->draw();
    }
}
